Data storage devices (e.g., disk drives and solid state drives) employed in computer systems may process sequential write commands received from a host, for example, when streaming data is written by the host. To implement sequential writes, the data storage device typically caches the write data of a number of write commands before the write data is transferred to a non-volatile memory, such as a disk or a non-volatile semiconductor memory. To maximize throughput it is desirable that write commands be received from the host at a rate that at least matches the transfer rate to the non-volatile memory. In the case of a disk drive, this ensures the disk does not slip a revolution due to the host transfer rate falling behind the disk transfer rate.
FIG. 1 shows a prior art command sequence for a data storage device processing sequential write commands received from a host. In this example, the data storage device caches the write data of four write commands (A, B, C, D) before the transfer to the non-volatile memory begins (a disk in this example). Once the write data for the A write command has been transferred to the non-volatile memory, the disk drive sends an acknowledge (ACK) to the host indicating that the A write command has been processed and that a new command may be sent. After an inter-command delay (I), the host sends an E write command to the data storage device, wherein the data storage device responds by requesting the write data from the host. FIG. 1 illustrates an overhead (O) associated with transferring the E write command and the corresponding write data by the host, as well as the transfer interval (S) required to transfer the write data. In order for the transfer rate of the write commands from the host to keep up with the transfer rate of the write data to the non-volatile memory, the overhead (O) must remain small to ensure the entire host cycle is less than the block transfer to the non-volatile memory.